package com.pro.common.api.auth;

import com.pro.common.api.user.model.IUser;
import io.swagger.v3.oas.annotations.parameters.RequestBody;

import java.io.Serializable;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Set;

public interface IUserService<T extends IUser> {
//    Map<Long, T> idMap(Collection<? extends Serializable> userIds);

    List<Long> getIdsByAgentIds(Collection<Long> agentIds);

    T getById(Long userId);

    List<T> listByIds(List<Long> userIds);

    //    T newInstance();
    Map<Long, T> idMap(Collection<Long> ids);

    Map<Long, String> idLangMap(Collection<Long> ids);

    boolean updateById(T entity);


//    List<T> listByIdsAndLevelIds(Collection<? extends Serializable> userIds,Collection<? extends Serializable> userLevelIds);

//    Map<Long, T> getMap(String queryProp, Collection<?> queryPropValues);

    List<Long> listIdByPids(List<Long> userIds);

//    String buildCode(String valueCache);

    //    T query(LoginRequest loginRequest);
    List<T> listByUsernames(List<String> usernames);
}
